

#include <iostream>

template <typename T>

void swap (T& t1, T& t2) {

    T tmp = t1;
    t1 = t2;
    t2 = tmp;
}

template <typename T>
class AA {
    public:
        T i;
        void print()  {
            std::cout << i << std::endl;
        }
};

int main() {

    int t1 = 88;
    int t2 = 99;
    
    std::cout << "before t1 " << t1 << " t2 " << t2 << std::endl;
    swap(t1, t2);
    std::cout << "after t1 " << t1 << " t2 " << t2 << std::endl;

    AA<int> aa;
    aa.i = 99;
    aa.print();
    
    return 0;
}